package cn.tworice.admin.service.impl;

import cn.tworice.admin.dao.SystemDao;
import cn.tworice.admin.service.SystemService;
import cn.tworice.common.entity.Admin;
import cn.tworice.common.entity.Role;
import cn.tworice.common.entity.Resources;
import cn.tworice.common.entity.RoleResources;
import cn.tworice.common.entity.dto.ResourcesDto;
import cn.tworice.common.utils.AgingMap;
import cn.tworice.common.utils.CodeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * 系统管理模块业务层
 *
 * @author 二饭
 * @email 1786705138@qq.com
 */
@Service
public class SystemServiceImpl implements SystemService {

    /*
        在线用户的Map
     */
    private AgingMap<String, Object> adminMap;

    /**
     * 删除指定Key
     * @param key
     */
    @Override
    public void delAdminMap(String key) {
        this.adminMap.removeKey(key);
    }
    /**
     * 添加登录成功的用户到adminMap
     * 用户ID为key，所以同时在线用户会被挤下线
     * @param key 用户ID
     * @param obj Token
     */
    @Override
    public void addAdminMap(String key,Object obj){
        if(this.adminMap==null){
            adminMap = new AgingMap<>();
        }
        adminMap.put(key, obj);
    }

    /**
     * 判断key和value是否存在
     * @param key
     * @param obj
     * @return
     */
    @Override
    public boolean exist(String key,Object obj){
        if(this.adminMap==null){
            return false;
        }
        return this.adminMap.exist(key,obj);
    }

    /**
     * 获取登录成功的用户列表
     * @return
     */
    @Override
    public Map<String, Object> getAdminMap(){
        return this.adminMap.getMap();
    }

}
